﻿#ifndef HTTP_RESPONSE_H
#define HTTP_RESPONSE_H

#include <string>
#include <unordered_map>
class HttpResponse
{
public:
    // 响应行
    std::string m_version; // http版本
    int m_statuCode;      // 状态码
    // 响应报头
    std::unordered_map<std::string, std::string> m_headers; // 头部字段
    // 正文
    std::string m_body;
    // 其他：重定向
    bool m_redirectFlag;
    std::string m_redirectUrl;

public:
    HttpResponse();
    HttpResponse(int statu);
    // 重置
    void reset();
    // 设置头部字段
    void setHeader(const std::string &key, const std::string &value);
    // 设置正文
    void setBody(const std::string &body, const std::string &type);
    // 设置重定向
    void setRedirect(const std::string &url, int statu = 302);
    // 判断是否存在指定头部字段
    bool hasHeader(const std::string &key) const;
    // 获取指定头部字段
    std::string getHeader(const std::string &key) const;
    // 是不是短连接
    bool close() const;
};

#endif